#!/usr/bin/env bash

function wait_for_mutation()
{
    local table=$1
    local mutation_id=$2
    local database=$3
    database=${database:="${CLICKHOUSE_DATABASE}"}

    for i in {1..100}
    do
        sleep 0.1
        if [[ $(${CLICKHOUSE_CLIENT} --query="SELECT min(is_done) FROM system.mutations WHERE database='$database' AND table='$table' AND mutation_id='$mutation_id'") -eq 1 ]]; then
            break
        fi

        if [[ $i -eq 100 ]]; then
            echo "Timed out while waiting for mutation to execute!"
        fi

    done
}

function wait_for_all_mutations()
{
    local table=$1
    local database=$2
    database=${database:="${CLICKHOUSE_DATABASE}"}

    for i in {1..200}
    do
        sleep 1
        if [[ $(${CLICKHOUSE_CLIENT} --query="SELECT coalesce(minOrNull(is_done), 1) FROM system.mutations WHERE database='$database' AND table like '$table'") -eq 1 ]]; then
            break
        fi

        if [[ $i -eq 200 ]]; then
            echo "Timed out while waiting for mutation to execute!"
        fi

    done
}

# vi: ft=bash
